package mx.ipn.escom.redes.equipo.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "hardware")
public class Hardware {
	
	private Integer idHardware;
	
	private String nombre;
	
	private String marca;
	
	private String modelo;
	
	private String numeroSerie;
	
	private Integer idCategoriaHardware;
	
	private Integer cantidad;
	
	private CategoriaHardware categoriaHardware;
		
	public Hardware(){}

	/**
	 * @return the idHardware
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "idHardware", nullable = false)
	public Integer getIdHardware() {
		return idHardware;
	}

	/**
	 * @param idHardware the idHardware to set
	 */
	public void setIdHardware(Integer idHardware) {
		this.idHardware = idHardware;
	}
	
	/**
	 * @return the nombre
	 */
	@Column(name = "nombre", nullable = false)
	public String getNombre() {
		return nombre;
	}

	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * @return the marca
	 */
	@Column(name = "marca", nullable = false)
	public String getMarca() {
		return marca;
	}

	/**
	 * @param marca the marca to set
	 */
	public void setMarca(String marca) {
		this.marca = marca;
	}

	/**
	 * @return the modelo
	 */
	@Column(name = "modelo", nullable = false)
	public String getModelo() {
		return modelo;
	}

	/**
	 * @param modelo the modelo to set
	 */
	public void setModelo(String modelo) {
		this.modelo = modelo;
	}

	/**
	 * @return the numeroSerie
	 */
	@Column(name = "numeroSerie", nullable = false)
	public String getNumeroSerie() {
		return numeroSerie;
	}

	/**
	 * @param numeroSerie the numeroSerie to set
	 */
	public void setNumeroSerie(String numeroSerie) {
		this.numeroSerie = numeroSerie;
	}

	/**
	 * @return the idCategoriaHardware
	 */
	@Column(name = "idCategoriaHardware", nullable = true)
	public Integer getIdCategoriaHardware() {
		return idCategoriaHardware;
	}

	/**
	 * @param idCategoriaHardware the idCategoriaHardware to set
	 */
	public void setIdCategoriaHardware(Integer idCategoriaHardware) {
		this.idCategoriaHardware = idCategoriaHardware;
	}

	/**
	 * @return the categoriaHardware
	 */
	@ManyToOne
	@JoinColumn(name = "idCategoriaHardware", referencedColumnName = "idCategoriaHardware", insertable = false, updatable = false)
	public CategoriaHardware getCategoriaHardware() {
		return categoriaHardware;
	}

	/**
	 * @param categoriaHardware the categoriaHardware to set
	 */
	public void setCategoriaHardware(CategoriaHardware categoriaHardware) {
		this.categoriaHardware = categoriaHardware;
	}

	/**
	 * @return the cantidad
	 */
	@Column(name="cantidad")
	public Integer getCantidad() {
		return cantidad;
	}

	/**
	 * @param cantidad the cantidad to set
	 */
	public void setCantidad(Integer cantidad) {
		this.cantidad = cantidad;
	}
	
	

}
